package models

import "time"

// 创建申请请求
type CreateApplicationRequest struct {
	ProjectID      uint       `json:"project_id" binding:"required"`   // 课题ID
	CoverLetter    string     `json:"cover_letter" binding:"required"` // 申请信
	Resume         string     `json:"resume" binding:"required"`       // 简历链接
	Portfolio      string     `json:"portfolio"`                       // 作品集链接
	ResearchPlan   string     `json:"research_plan"`                   // 研究计划
	Motivation     string     `json:"motivation"`                      // 申请动机
	Qualifications string     `json:"qualifications"`                  // 资质说明
	ExpectedTime   int        `json:"expected_time"`                   // 预期投入时间(小时/周)
	StartDate      *time.Time `json:"start_date"`                      // 可开始时间
	EndDate        *time.Time `json:"end_date"`                        // 可结束时间
}

// 更新申请请求
type UpdateApplicationStatusRequest struct {
	Status   ApplicationStatus `json:"status" binding:"required"` // 状态
	Feedback string            `json:"feedback"`                  // 反馈意见
}

// 推荐课题响应结构体
type RecommendedProject struct {
	Project
	MatchScore float64 `json:"match_score"` // 匹配分数
}

// 推荐课题列表请求结构体
type GetRecommendedProjectsRequest struct {
	StudentID uint `json:"student_id" binding:"required"` // 学生ID
	TopK      int  `json:"top_k"`                         // 返回Top K个课题，默认为10
}
